#include <stdio.h>

struct bign{
	int num[20];
	int bits;
};

void trans_to_bign(char s[],struct bign *a)
{
	int n=strlen(s),i,t;
	for(t=0;s[t]=='0';t++);
	for(i=0;i<n-t;i++)	a->num[i+t]=s[n-i-1]-'0';
	for(i=n-t;i<20;i++)	a->num[i]=0;
	a->bits=n-t;
}

int prompt(struct bign *a,struct bign *b)
{
	char hold[20];
	scanf("%s",hold);
	trans_to_bign(hold,a);
	scanf("%s",hold);
	trans_to_bign(hold,b);
	if(b->bits==0 && a->bits==0)	return 0;
	else return 1;
}	


int main(){
	struct bign a,b,res={{},0};
	int m_bits,count=0,i;
	count;
	
	while(prompt(&a,&b)){
		for(i=0;i<20;i++)	res.num[i]=0;
		count=0;
		
		m_bits=(a.bits>b.bits?a.bits:b.bits);
		for(i=0;i<m_bits;i++){
			res.num[i]+=a.num[i]+b.num[i];
			if(res.num[i]>9){res.num[i+1]=res.num[i]/10;res.num[i]=res.num[i]%10;count++;}	
		}
		
		if(count)	printf("%d carry operation%s.\n",count,count==1?"":"s");
		else printf("No carry operation.\n");
	}
	


	
	getch();
	return 0;
}
